有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ant将我的Mac更新为最新的Java JDK时遇到的困难

[2015-10-12 12:51]

Running...

little-mbook1:platform mlittle$ ant clean all
     Error: JAVA_HOME is not defined correctly.
       We cannot execute   /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home//bin/java

And running...

mlittle-mbook1:bin mlittle$ export   JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

I set java_home to: JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

I have just noticed that Apache Ant is looking in the wrong path, with an additional ‘/'

And according to your email

“ Ant will try to use the file $JAVA_HOME/bin/java. If that doesn't exist, then > JAVA_HOME is not correct, it's that simple. If for example your java executable > is at /path/to/whatever/bin/java, then JAVA_HOME should be /path/to/whatever.”

or… $JAVA_HOME/bin/java

but the error message indicates that it is looking in the path..

$JAVA_HOME//bin/java

Notice the ‘//‘ instead of ‘/‘: how to correct this?

Or is there an ‘ant’ command, where I can force it to look in the correct path?

===================

[2015-10-12:1204]

Thank you, you have resolved one issue for me, I understand that /java is an executable in the path $java_home/bin/java, not a folder As for $JAVA_HOME/bin/java -version, I got the following...

mlittle-mbook1:~ mlittle$ /usr/libexec/java_home -v
java_home: option requires an argument -- v
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
mlittle-mbook1:~ mlittle$ which java
/usr/bin/java

Now re-running ant to attempt to build the hybris instance...

mlittle-mbook1:~ mlittle$ cd 00hybris/hybris/bin/platform
mlittle-mbook1:platform mlittle$ pwd
/Users/mlittle/00hybris/hybris/bin/platform
mlittle-mbook1:platform mlittle$ . ./setantenv.sh
mlittle-mbook1:platform mlittle$ ant clean all
Error: JAVA_HOME is not defined correctly.
We cannot execute   /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home//bin/java

As you can see, I am still having problems with 'ant' despite having what now appears the correct $java_home location.

=======

=======

[2015-10-11-23:20] 进一步调查

mlittle-mbook1:Users mlittle$ cd   
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mlittle-mbook1:Home mlittle$ pwd
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mlittle-mbook1:Home mlittle$ ls -a
.                   README.html             db                  lib
..                  THIRDPARTYLICENSEREADME-JAVAFX.txt  include         man
COPYRIGHT               THIRDPARTYLICENSEREADME.txt     javafx-src.zip release
LICENSE                 bin                 jre                 src.zip

mlittle-mbook1:Home mlittle$ cd bin

mlittle-mbook1:bin mlittle$ ls -a
.       jar     javafxpackager  jconsole    jjs     jsadebugd   keytool rmic servertool xjc
 ..     jarsigner   javah       jdb     jmap        jstack      native2ascii    rmid        tnameserv
appletviewer    java        javap       jdeps       jmc     jstat       orbd        rmiregistry unpack200
extcheck    javac       javapackager    jhat        jps     jstatd      pack200     schemagen   wsgen
idlj        javadoc     jcmd        jinfo       jrunscript  jvisualvm   policytool  serialver   wsimport

mlittle-mbook1:bin mlittle$ which java
/usr/bin/java
mlittle-mbook1:bin mlittle$ export    JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
mlittle-mbook1:bin mlittle$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
mlittle-mbook1:bin mlittle$ 

====

 mlittle-mbook1:platform mlittle$ ant clean all
 Error: JAVA_HOME is not defined correctly.
   We cannot execute   /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home//bin/java
mlittle-mbook1:platform mlittle$* 

== 初步调查

我在MacBook上的Java安装似乎有问题,因为这涉及到基于Java的电子商务平台[Difficulties with installation script for hybris 5.6.02]的安装和Apache Ant的使用

  1. 关于我的MacBook。。 系统软件概述:

System Version: OS X 10.10.5 (14F27)
Kernel Version: Darwin 14.5.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Computer Name: mlittle-mbook1
User Name: mlittle-mbook1 (mlittle)
Secure Virtual Memory: Enabled
Time since boot: 1 day5:34

=========

1。检查了哪个java…

mlittle-mbook1:~ mlittle$ which java
/usr/bin/java

2。重新检查哪个Java

mlittle-mbook1:~ mlittle$ ls -l `which java`
lrwxr-xr-x  1 root  wheel  74  5 Nov  2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

3。然后我下载了JDK版本8、更新60,路径如下:

/Library/Java/Java?Java虚拟机

以前是

/jdk1.7.0_21.jdk

现在有了

/jdk1.7.0_21.jdk
/jdk1.8.0_60.jdk

这令人困惑,我原以为它会取代/jdk1。7.0_21.jdk 使用/jdk1。8.0_60.jdk

4。我检查java的版本

mlittle-mbook1:~ mlittle$ java -version
java version "1.7.0_21"
mlittle-mbook1:~ mlittle$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

它仍然指示java版本“1.7.0_21”

所以我改名为/jdk1。7.0_21.jdk到/old-jdk1。7.0_21.jdk

4。我再次检查java的版本,然后得到…

mlittle-mbook1:~ mlittle$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

5。这应该是适用于Hybris5的Java的正确版本。6.0.2[这是我试图安装的基于java的电子商务平台],通过设置ANT环境变量,并开始构建过程[ANT clean all]…但是…

mlittle-mbook1:platform mlittle$ . ./setantenv.sh


 试图把所有的。。并收到与JAVA_HOME相关的错误消息

mlittle-mbook1:platform mlittle$ ant clean all
Error: JAVA_HOME is not defined correctly.
  We cannot execute /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home//bin/java


 
6。再次检查java路径…

mlittle-mbook1:platform mlittle$ which java
/usr/bin/java

7。我尝试更改Java_主路径,然后重新运行ANT

mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/Home
mlittle-mbook1:platform mlittle$ ant clean all
Error: JAVA_HOME is not defined correctly.
  We cannot execute /Library/Java/Home/bin/java


 
8。再次选中“哪个Java”

mlittle-mbook1:platform mlittle$ which java
/usr/bin/java
mlittle-mbook1:platform mlittle$ $JAVA_HOME/bin/java -version
-bash: /Library/Java/Home/bin/java: No such file or directory

9。我试图更改Java_主页,重新运行Ant,但仍然收到一条错误消息

mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/
mlittle-mbook1:platform mlittle$ ant clean all
Error: JAVA_HOME is not defined correctly.
  We cannot execute /Library/Java/JavaVirtualMachines//bin/java

10。9.我试图更改Java_主页,重新运行Ant,但仍然收到错误消息

mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin
mlittle-mbook1:platform mlittle$ ant clean all
Error: JAVA_HOME is not defined correctly.
  We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/bin/java


 <11>强壮。再次检查哪个java

mlittle-mbook1:platform mlittle$ which java
/usr/bin/java

我很困惑,显然我没有正确设置java设置主变量:有什么建议吗


共 (1) 个答案

  1. # 1 楼答案

    看起来这应该是正确的:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
    

    Ant将尝试使用文件$JAVA_HOME/bin/java。如果那不存在,那么JAVA_HOME是不正确的,就这么简单。 例如,如果您的java可执行文件位于/path/to/whatever/bin/java,那么JAVA_HOME应该是/path/to/whatever